package com.atguigu.school.service;

import com.atguigu.school.commons.Page;
import com.atguigu.school.pojo.Grade;

import java.util.List;

/**
 * 处理年级相关业务
 *
 * @author 刘逸晖
 */
public interface GradeService {

    /**
     * 新增或更新年级
     * 如果是更新，请携带年级 id ，如果是新增，则不要年级 id
     *
     * @param grade 年级信息
     */
    void saveOrUpdateGrade(Grade grade);

    /**
     * 批量删除年级
     *
     * @param ids 预删除年级的 id 列表
     */
    void deleteGradesByIds(List<Integer> ids);

    /**
     * 按名称分页查询年级
     *
     * @param current 当前页，从 1 开始
     * @param size    每页长度
     * @param name    年级名称，可以不完整，可为空
     * @return 年级列表
     */
    Page<Grade> selectGradesForPage(Integer current, Integer size, String name);

    /**
     * 查询所有年级
     *
     * @return 所有年级
     */
    List<Grade> selectGrades();

}
